const wxVersion = wx.getAccountInfoSync().miniProgram.version;
const VERSION = wxVersion || 'unknown';
const realtimeLogger = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null;

export function DEBUG(file, ...args) {
    console.log(file, '|', ...args);
    realtimeLogger && realtimeLogger.info(`[${VERSION}]`, file, ' | ', ...args);
}

export function ERROR(file, ...args) {
    console.error(file, '|', ...args);
    if (realtimeLogger) {
        realtimeLogger.error(`[${VERSION}]`, file, ' | ', ...args);
        if (realtimeLogger.addFilterMsg) {
            try {
                realtimeLogger.addFilterMsg(
                    `[${VERSION}] ${file} ${JSON.stringify(args)}`
                );
            } catch (e) {
                realtimeLogger.addFilterMsg(`[${VERSION}] ${file}`);
            }
        }
    }
}

export function getLogger(fileName) {
    return {
        DEBUG: function (...args) {
            DEBUG(fileName, ...args);
        },
        ERROR: function (...args) {
            ERROR(fileName, ...args);
        }
    };
}
